package com.xinqi.modules.stats.score.controller.web;

import com.xinqi.common.base.response.R;
import com.xinqi.modules.stats.score.dto.req.CourseTotalScoreClassDTO;
import com.xinqi.modules.stats.score.dto.req.CourseTotalScoreContentSetDTO;
import com.xinqi.modules.stats.score.dto.rsp.CourseTotalScoreContentResultDTO;
import com.xinqi.modules.stats.score.service.CourseTotalScoreContentService;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * 总成绩成绩栏目配置WEB控制层
 *
 * @author: system
 * @date: 2023/03/26
 */
@Tag(name = "总成绩课程成绩栏目配置WEB端", description = "总成绩课程成绩栏目配置WEB端")
@RestController
@RequestMapping("/web/total-score-content")
@RequiredArgsConstructor
public class CourseTotalScoreContentWebController {

    private final CourseTotalScoreContentService courseTotalScoreContentService;

    /**
     * 获取成绩项栏目-查询成绩项列表
     * @param dto 初始化参数
     * @return
     */
    @GetMapping("/list")
    public R<List<CourseTotalScoreContentResultDTO>> list(CourseTotalScoreClassDTO dto) {
        return R.ok(courseTotalScoreContentService.findTotalScoreContent(dto));
    }

    /**
     * 设置成绩项栏目
     * @param dto 初始化参数
     * @return
     */
    @PutMapping("/set")
    public R<String> set(@RequestBody CourseTotalScoreContentSetDTO dto) {
        if (courseTotalScoreContentService.setTotalScoreContent(dto)) {
            return R.ok("设置成功");
        } else {
            return R.fail("设置失败");
        }
    }

    /**
     * 获取成绩项栏目-查询已设置的成绩项列表
     * @param dto 初始化参数
     * @return
     */
    @GetMapping("/setting/list")
    public R<List<CourseTotalScoreContentResultDTO>> setList(CourseTotalScoreClassDTO dto) {
        return R.ok(courseTotalScoreContentService.findOpenTotalScoreContentContainSon(dto));
    }

}
